---
description: |-
  Terraform enables you to safely and predictably create, change, and improve
  infrastructure. It is an open source tool that codifies APIs into
  declarative configuration files that can be shared amongst team members,
  treated as code, edited, reviewed, and versioned.
show_notification: true
---

<% content_for(:custom_share) do %>
  <meta name="twitter:card" content="summary_large_image" />
  <meta property="og:image" content="<%= image_url("og-image-large.png") %>"/>
<% end %>

<div class="terraform-overview">
    <section id="home-hero">
        <div class="g-container">
            <div>
                <div>
                    <div>
                        <a class="notification no-bg g-type-body-small" href="https://www.hashicorp.com/blog/announcing-terraform-cloud/">
                            <span class="g-type-tag-label">New</span> Introducing Terraform Cloud <span><svg width="14" height="8"
                                    viewBox="0 0 14 8" fill="none" xmlns="http://www.w3.org/2000/svg">
                                    <path
                                        d="M1 3.5C0.723858 3.5 0.5 3.72386 0.5 4C0.5 4.27614 0.723858 4.5 1 4.5V3.5ZM13.3536 4.35355C13.5488 4.15829 13.5488 3.84171 13.3536 3.64645L10.1716 0.464466C9.97631 0.269204 9.65973 0.269204 9.46447 0.464466C9.2692 0.659728 9.2692 0.976311 9.46447 1.17157L12.2929 4L9.46447 6.82843C9.2692 7.02369 9.2692 7.34027 9.46447 7.53553C9.65973 7.7308 9.97631 7.7308 10.1716 7.53553L13.3536 4.35355ZM1 4.5H13V3.5H1V4.5Z"
                                        fill="#5F43E9" />
                                </svg>
                            <span>
                        </a>
                        <h1 class="g-type-display-1">Terraform</h1>
                        <p class="g-type-body-large">Use Infrastructure as Code to provision and manage any cloud, infrastructure, or service</p>
                        <a href="https://app.terraform.io/signup/account?utm_source=iopage&utm_campaign=tf_cloud_ga" class="button primary download">
                            Sign up for Cloud
                        </a>
                        <a href="/downloads.html" class="button dark-outline">
                            Download CLI</a>
                    </div>
                </div>
                <div>
                    <div class="controls">
                        <div data-index="0">
                            <span class="g-type-buttons-and-standalone-links">Cloud</span>
                            <div class="progress-bar"><span></span></div>
                        </div>
                        <div data-index="1">
                            <span class="g-type-buttons-and-standalone-links">CLI</span>
                            <div class="progress-bar"><span></span></div>
                        </div>
                    </div>
                    <div class="videos">
                        <div>
                            <div class="bar-buttons">
                                <span></span>
                                <span></span>
                                <span></span>
                            </div>
                            <div>
                                <video muted="muted">
                                    <source
                                        src="https://www.datocms-assets.com/2885/1568036870-1567204661-terraform-overview-hero-cloud.mp4"
                                        type="video/mp4">
                                </video>
                            </div>
                        </div>
                        <div>
                            <div class="bar-buttons">
                                <span></span>
                                <span></span>
                                <span></span>
                            </div>
                            <video muted="muted">
                                <source
                                    src="https://www.datocms-assets.com/2885/1568037655-1567721088-terraform-overview-hero-cli.mp4"
                                    type="video/mp4">
                            </video>
                            <div class="overlay"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>
    <section id="infrastructure-as-code" class="g-section bg-light">
        <div class="g-container">
            <div class="intro">
                <h2 class="g-type-display-2">Deliver infrastructure as code with Terraform</h2>
            </div>
            <div class="g-text-asset">
                <div>
                    <div>
                        <h3 class="g-type-display-3">Write declarative configuration files</h3>

                        <div class="check">
                            <ul class="g-type-body">
                                <li>Collaborate and share configurations</li>
                                <li>Evolve and version your infrastructure</li>
                                <li>Automate provisioning</li>
                            </ul>
                        </div>
                        <p class="g-type-body">Define infrastructure as code to manage the full lifecycle — create new resources, manage existing ones, and destroy those no longer needed.</p>
                    </div>
                </div>
                <div>
                    <div>
                        <div>
                            <div>
                                <picture>
                                    <source type="image/png" srcset="
                                        /assets/images/terraform-overview/declarative-config-files.png 300w,
                                        /assets/images/terraform-overview/declarative-config-files@2x.png 704w,
                                        /assets/images/terraform-overview/declarative-config-files@4x.png 1256w">
                                    <img src="/assets/images/terraform-overview/declarative-config-files@4x.png"
                                        alt="Write Declarative Configuration Files">
                                </picture>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="g-text-asset reverse">
                <div>
                    <div>
                        <h3 class="g-type-display-3">Plan and predict changes</h3>

                        <div class="check">
                            <ul class="g-type-body">
                                <li>Clearly mapped resource dependencies</li>
                                <li>Separation of plan and apply</li>
                                <li>Consistent, repeatable workflow</li>
                            </ul>
                        </div>
                        <p class="g-type-body">Terraform provides an elegant user experience for operators to safely and predictably make
                            changes to
                            infrastructure.</p>
                    </div>
                </div>
                <div>
                    <div>
                        <div>
                            <div>
                                <picture>
                                    <source type="image/png"
                                        srcset="
                                          /assets/images/terraform-overview/plan-changes-to-infrastructure.png 300w,
                                          /assets/images/terraform-overview/plan-changes-to-infrastructure@2x.png 704w,
                                          /assets/images/terraform-overview/plan-changes-to-infrastructure@4x.png 1256w">
                                    <img src="/assets/images/terraform-overview/plan-changes-to-infrastructure@4x.png"
                                        alt="Plan Changes to Cloud Infrastructure">
                                </picture>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="g-text-asset">
                <div>
                    <div>
                        <h3 class="g-type-display-3">Create reproducible infrastructure</h3>
                        <div class="check">
                            <ul class="g-type-body">
                                <li>Reproducible production, staging, and development environments</li>
                                <li>Shared modules for common infrastructure patterns</li>
                                <li>Combine multiple providers consistently</li>

                            </ul>
                        </div>
                        <p class="g-type-body">Terraform makes it easy to re-use configurations for similar infrastructure, helping you
                            avoid mistakes and save time.</p>
                        <a href="https://www.terraform.io/docs/providers/" class="button">View All Providers</a>
                    </div>
                </div>
                <div >
                    <div><div><div>
                        <picture>
                            <source type="image/png" srcset="
                                  /assets/images/terraform-overview/infrastructure-providers.png 300w,
                                  /assets/images/terraform-overview/infrastructure-providers@2x.png 704w,
                                  /assets/images/terraform-overview/infrastructure-providers@4x.png 1256w">
                            <img src="/assets/images/terraform-overview/infrastructure-providers@4x.png"
                                alt="Terraform Overview Infrastucture Providers">
                        </picture>
                    </div>
                    </div>
                    </div>
                </div>
            </div>
        </div>
    </section>


    <!-- Terraform Cloud -->
    <section id="terraform-cloud" class="g-section collapse-bottom">
        <div class="g-container">
            <div class="intro">
                <h2 class="g-type-display-2">Enhanced Workflow for Teams with Terraform Cloud</h2>
                <p class="g-type-body-large">Terraform Cloud is a free to use SaaS application that provides the best workflow for writing and
                    building
                    infrastructure as code with Terraform. </p>
            </div>
            <div class="g-text-asset reverse">
                <div>
                    <div>
                        <h3 class="g-type-display-3">Share infrastructure as code</h3>
                        <p class="g-type-body">Empower your team to rapidly review, comment,
                            and iterate on Infrastructure as Code.</p>
                        <div class="check">
                            <ul class="g-type-body">
                                <li>State management <span class="shrink">(storage, viewing, history, and locking)</span></li>
                                <li>Web UI for viewing and approving Terraform runs</li>
                                <li>Collaborative Runs</li>
                                <li>Private module registry</li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div>
                    <div>
                        <div>
                            <div class="has-borders">
                                <picture>
                                    <source type="image/png" srcset="
                                      /assets/images/terraform-overview/workflow-collaboration.png 300w,
                                      /assets/images/terraform-overview/workflow-collaboration@2x.png 704w,
                                      /assets/images/terraform-overview/workflow-collaboration@4x.png 1256w">
                                    <img src="/assets/images/terraform-overview/workflow-collaboration@4x.png"
                                        alt="Share Infrastructure as Code with Terraform">
                                </picture>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="g-text-asset">
                <div>
                    <div>
                        <h3 class="g-type-display-3">Automate consistent workflows</h3>
                        <p class="g-type-body">Create a pipeline for provisioning Infrastructure as Code</p>
                        <div class="check">
                            <ul class="g-type-body">
                                <li>VCS integration <span class="shrink">(Azure DevOps, Bitbucket, GitHub, and GitLab)</span></li>
                                <li>Enable GitOps workflow</li>
                                <li>Remote operations — perform Terraform runs in a consistent, immutable environment</li>
                                <li>Notifications for run events <span class="shrink">(via Slack or webhooks)</span></li>
                                <li>Full HTTP API for integrating with other tools and services</li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div>
                    <div>
                        <div>
                            <div class="has-borders">
                                <picture>
                                    <source type="image/png"
                                        srcset="
                                      /assets/images/terraform-overview/automate-the-provisioning-lifecycle.png 300w,
                                      /assets/images/terraform-overview/automate-the-provisioning-lifecycle@2x.png 704w,
                                      /assets/images/terraform-overview/automate-the-provisioning-lifecycle@4x.png 1256w">
                                    <img src="/assets/images/terraform-overview/automate-the-provisioning-lifecycle@4x.png"
                                        alt="Terraform - Automate the Provisioning Lifecycle">
                                </picture>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="btn-container">
                <a href="https://app.terraform.io/signup/account?utm_source=iopage&utm_campaign=tf_cloud_ga" class="button primary download">
                    Sign up for Terraform Cloud
                </a>
            </div>
        </div>
    </section>


    <section id="pricing" class="g-section collapse-top">
        <div class="g-container">
            <div class="intro">
                <h2 class="g-type-display-2">Terraform for Every Team</h2>
                <p class="g-type-body-large">Organizations looking for enhanced division of responsibilities or automatic policy enforcement can purchase the
                    Team and Governance upgrades for Terraform Cloud. Start for free and upgrade to suit the needs of
                    your team as you grow.
                </p>
            </div>
            <div class="g-pricing-tile">
                <div>
                    <div>
                        <h3 class="g-type-display-3">Free</h3>
                        <p class="g-type-body">Automation and collaboration features to empower individuals and small teams, including VCS integration,
                            remote operations, and state management. Teams on the free plan can have up to 5 users.</p>
                        <p class="price g-type-body-small"><span class="g-type-display-2">$0</span> Up to 5 users</p>
                    </div>
                </div>
                <div>
                    <div>
                        <h3 class="g-type-display-3">Team</h3>
                        <p class="g-type-body">This upgrade includes team management and role based access control (RBAC). Create multiple teams and
                            ensure that team members have the right level of access to the appropriate configurations.
                        </p>
                        <p class="price g-type-body"><span class="g-type-display-2">$20</span> <strong>User / Month</strong></p>
                    </div>
                </div>
                <div>
                    <div>
                        <h3 class="g-type-display-3">Governance</h3>
                        <p class="g-type-body">This upgrade provides access to the <a href="https://www.hashicorp.com/sentinel" title="HashiCorp - Sentinel Policy as Code">Sentinel Policy as Code</a> framework for enforcing
                            fine-grained policy
                            against everything that Terraform Cloud provisions.
                            It also includes cost estimation, so you can preview how much
                            configurations will cost
                            before they are deployed.
                        </p>
                        <p class="price g-type-body"><span class="g-type-display-2">$70</span> <strong>User / Month</strong></p>
                    </div>
                </div>
            </div>
            <div class="btn-container">
                <a href="https://www.hashicorp.com/products/terraform/offerings" class="button primary download">
                    Compare Terraform Offerings
                </a>
            </div>
        </div>
    </section>
    <section id="how-terraform-works" class="g-section bg-light">
        <div class="g-container">
            <div class="intro">
                <h2 class="g-type-display-2">
                    How Terraform Works
                </h2>
            </div>
            <div class="g-tabbed-content g-text-asset" id="how-terraform-works-tabs">
                <ul class="tab-list">
                    <li class="active" id="tab-cloud"><a href="#cloud" aria-selected="true" aria-controls="tab-cloud">Cloud</a></li>
                    <li id="tab-cli"><a href="#cli" aria-selected="false"  aria-controls="tab-cloud">CLI</a></li>
                </ul>
                <div class="tab-panel active" id="tab-panel-cloud" aria-hidden="false"  aria-labelledby="tab-cloud" data-hashi-tab="tab-cloud">
                    <div class="tab-content">
                        <picture>
                            <source type="image/png" srcset="
                                    /assets/images/terraform-overview/cloud-howitworks-v4-1x.png 300w,
                                    /assets/images/terraform-overview/cloud-howitworks-v4-2x.png 704w">
                            <img src="/assets/images/terraform-overview/cloud-howitworks-v4-2x.png"
                                alt="Terraform Cloud - How It Works Diagram">
                        </picture>
                    </div>
                    <div class="tab-content">
                        <h3 class="g-type-display-3">Terraform Cloud</h3>
                            <h4 class="g-type-display-4">Write Infrastructure as Code</h4>
                            <p class="g-type-body">Terraform users define infrastructure in a simple, human-readable configuration language
                                called HCL
                                (HashiCorp
                                Configuration Language). Users can write unique HCL configuration files or borrow
                                existing templates
                                from
                                the public
                                module registry.</p>
                            <h4 class="g-type-display-4">Manage Configuration Files in VCS</h4>
                            <p class="g-type-body">Most users will store their configuration files in a version control system (VCS) repository and
                                connect that repository
                                to a
                                Terraform
                                Cloud workspace. With that connection in place, users can borrow best practices from software
                                engineering to
                                version
                                and
                                iterate on infrastructure as code, using VCS and Terraform Cloud as a delivery pipeline
                                for
                                infrastructure.
                            </p>
                            <h4 class="g-type-display-4">Automate Provisioning</h4>
                            <p class="g-type-body">When you push changes to a connected VCS repository, Terraform Cloud will automatically trigger a plan
                                in any workspace connected to that repository.
                                This plan can be
                                reviewed for
                                safety and accuracy in the Terraform UI, then it can be applied to provision the
                                specified
                                infrastructure.
                            </p>
                    </div>
                </div>
                <div class="tab-panel"  id="tab-panel-cli" aria-hidden="true" aria-labelledby="tab-cli" data-hashi-tab="tab-cli">
                    <div class="tab-content">
                        <picture>
                            <source type="image/png" srcset="
                                      /assets/images/terraform-overview/cli-howitworks-1x.png 300w,
                                      /assets/images/terraform-overview/cli-howitworks-2x.png 704w,
                                      /assets/images/terraform-overview/cli-howitworks.png 1256w">
                            <img src="/assets/images/terraform-overview/cli-howitworks-2x.png"
                                alt="Terraform CLI - How It Works Diagram">
                        </picture>
                    </div>
                    <div class="tab-content">
                        <h3 class="g-type-display-3">CLI</h3>
                            <p class="g-type-body">Terraform allows infrastructure to be expressed as code in a simple, human readable
                                language called HCL (HashiCorp
                                Configuration Language). Terraform CLI reads configuration files and provides an
                                execution plan of changes, which can
                                be reviewed for safety and then applied and provisioned. Extensible providers allow
                                Terraform to manage a broad range
                                of resources, including hardware, IaaS, PaaS, and SaaS services.</p>
                            <div class="check">
                                <ul class="g-type-body">
                                    <li>Infrastructure as Code</li>
                                    <li>200+ available providers</li>
                                    <li>Provision any infrastructure</li>
                                </ul>
                            </div>
                    </div>
                </div>
            </div>
        </div>
    </section>


    <section id="fostering-community" class="g-section">
        <div class="g-container">
            <div class="g-text-asset reverse">
                <div>
                    <div>
                        <h2 class="g-type-display-2">Strong Community</h2>
                        <div class="check">
                            <ul>
                                <li><a href="https://github.com/hashicorp/terraform">25,000+ Commits</a></li>
                                <li><a href="https://registry.terraform.io/">1,000+ Modules</a></li>
                                <li><a href="https://www.terraform.io/docs/providers/">200+ Providers</a></li>
                            </ul>
                        </div>
                        <p class="g-type-body">Open Source projects benefit from the scrutiny of a broad and diverse user base. Keeping the
                            code
                            available helps to teach and empower the community of users, while it also provides an easy
                            mechanism for
                            feedback, improvement, and customization. </p>
                    </div>
                </div>
                <div>
                    <div class="video-embed">
                        <iframe width="100%" height="315" src="https://www.youtube.com/embed/4BCR7Yx4k4o"
                            frameborder="0"
                            allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
                            allowfullscreen></iframe>
                        <p class="caption g-type-body-small">Co-Founders Mitchell Hashimoto and Armon Dadgar explain HashiCorp’s
                            commitment to open source</p>
                    </div>
                </div>
            </div>
        </div>
    </section>
</div>
